package com.zhl.operator;

public class OperatorDemo2 {
    public static void main(String[] args) {
        //目标：掌握自增自减运算符的使用
        int a = 10;
        a++; // 等价于 a = a + 1
        // ++a;  等价于 a = a + 1
        System.out.println(a); // 11

        a--; // 等价于 a = a - 1
        // --a;  等价于 a = a - 1
        System.out.println(a); // 10

        //自增自减只能操作变量，不能操作字面量,否则会报错
        // 10++; // 错误
        //System.out.println(10--); // 错误

        System.out.println("---------------------------");
        /*
          ++ -- 如果不是单独使用（如在表达式中，或同时有其他操作），放在变量前后会存在明显区别
          放在变量前：先对变量进行自增，再进行其他操作
          int a = 10;
          int rs = ++a ; // 先对a进行自增，再进行其他操作，结果为20    (即先加再用)
          放在变量后：先进行其他操作，再对变量进行自增
          int b = 10;
          int rs = b++ ; // 先用后加
         */
        int i =10;
        int rs = i++; //先赋值，后自增
        System.out.println(rs); // 10
        System.out.println(i); // 11
        int j=10;
        rs = ++j;  //先自增，后赋值
        System.out.println(j); //11
        System.out.println(rs); //11

        //拓展解答：
        int c = 10;
        int d = 5;
        int result = c++ + ++c - --d + 1 + c-- ;
        System.out.println(result);
        System.out.println(c);
        System.out.println(d);

    }
}
